from ClaseListaParaArbol import *

class ArbolHuffman:
    
    def __init__(self,caracter,frecuencia):
        self.caracter = caracter
        self.frecuencia = frecuencia
        self.izquierda = None
        self.derecha = None
        self.codigoBin = None

    def crearPadre(self,arbolIzquierda,arbolDerecha):
        self.caracter = arbolIzquierda.caracter + "," + arbolDerecha.caracter
        self.frecuencia = arbolIzquierda.frecuencia + arbolDerecha.frecuencia
        self.izquierda = arbolIzquierda
        self.derecha = arbolDerecha
        self.izquierda.codigoBin = "0"
        self.derecha.codigoBin = "1"
        self.codigoBin = ""

    def generarArbolPartirDeTexto(listaDelArbol):
        for i in range(0,len(listaDelArbol)):
            if()
            arbolIzquierda=ArbolHuffman()
            Family
        
        


    def generarBinario(self,caracter):
        if self.caracter != caracter:
            if self.izquierda!=None:
                try:
                    return self.codigoBin + self.izquierda.generarBinario(caracter)
                except TypeError:
                    pass
            if self.derecha!=None:
                try:
                    return self.codigoBin + self.derecha.generarBinario(caracter)
                except TypeError:
                    pass
        else:
            return self.codigoBin


    def imprimeArbolDer(self):
        if self.caracter!=None:
            print(self.caracter)
            print(self.frecuencia)
            if self.derecha!=None:
                self.derecha.imprimeArbolDer()
            if self.izquierda!=None:
                self.izquierda.imprimeArbolDer()




